As computing and communication devices shrink in size and increase in mobility and popularity, there arises a greater need to provide user-friendly input methods that require a minimal amount of user time and effort to actuate. Many devices, such as certain cell-phones, have a hardware keyboard or keypad, through which the user may input information. Other devices have touch screens to allow user input. In some cases, a combination of input methods may be supplied.
With respect to devices that are too small to practically support a full keyboard in the appropriate language, a number of input techniques have been devised. Primary examples include a multi-tap hardware input method as well as a number of predictive methods. The multi-tap hardware method may be easily understood by considering a typical cell phone having a display-only screen (i.e. not touch screen) and 12 data entry buttons (0–9, * and #). Most buttons are assigned to a certain sequence of letters etc. For example, a typical phone, cell phone or otherwise, has at least the following key assignments: 2 (a,b,c), 3 (d,e,f), 4 (g,h,i), 5 (j,k,l), 6 (m,n,o), 7 (p,q,r,s), 8 (t,u,v), 9 (w,x,y,z), 0 (space).
In order to input a letter via such an array of buttons, such as during input of a word, the user typically pushes a particular button one or more times. Thus, to enter the word “phone” the user pushes the following sequence of buttons: 7, 4 (×2), 6 (×3), 6(×2), 3(×2). Note that the buttons usually cycle, and thus pushing “6” five times in a row would yield a single letter, n. Thus, to enter consecutive letters using the same button, the user must either wait for a time out to occur after arriving at the candidate for the first letter before moving on to entry of the second letter via the same button, or must push a “determine” key between the entry sequences. As will be appreciated, this input method can result in an undesirably high number of strikes for each character actually entered. Indeed, some in the art have noted that the average number of keystrokes per character using the multi-tap method is slightly greater than two for English. For other languages with greater numbers of characters or elements, the number of keystrokes per character can be much higher depending upon the actual number of entry buttons relative to the number of possible characters.
The predictive methods mentioned above attempt to lower the number of keystrokes per character by predictively finishing the input for the user. Typically, predictive techniques present a scrollable assortment of possible words that the user may be trying to spell, with the most probable choices listed higher in the list. The user selects the appropriate choice by scrolling if necessary and selecting, rather than finishing the letter-by-letter input. However, an erroneous user resolution of an ambiguity can take significant input time and keystrokes to correct, and the device may not know the particular word that the user is trying to write depending upon its dictionary size and source.
A related technique is referred to as disambiguation, because although a single multi-assigned keystroke may be ambiguous, multiple keystrokes can generally be resolved, or disambiguated, to a specific intended word with reasonable probability. In this technique, a user hits each multi-assigned button only once during sequence entry, and the device decides, after several characters, or after entry ends, which word or word portion in a stored database fits the input sequence. If multiple words or word portions in the database fit the sequence, then the user must select from among the possibilities. While this technique may work reasonably well with respect to English, it is impractical to implement in many other languages. Moreover, this technique shares certain drawbacks with the predictive techniques in that an erroneous user resolution of an ambiguity can take significant input time and keystrokes to correct.
Other input mechanisms include handwriting recognition, such as from a stylus entry pad or otherwise. However, the rate for correct recognition is fairly low for English implementations, and recognition rates in other languages are even worse. For example, handwritten Japanese characters are extremely difficult to correctly recognize, and an incorrect recognition consumes time and effort to correct.